package cn.lili.modules.grab.factory.goods;

import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.grab.GrabGoodsParam;
import cn.lili.modules.grab.enums.SourceEnums;
import cn.lili.modules.grab.enums.StatusEnums;

/**
 * 第三方采集接口
 */
public interface GrabGoodsService {

    /**
     * 渲染步骤
     *
     * @return 渲染枚举
     */
    SourceEnums step();

    /**
     * 商品列表
     *
     * @param grabParam 参数
     */
    default ResultMessage<Object> goodsList(GrabGoodsParam grabParam) {
        throw new ServiceException(StatusEnums.STATUS_400.getDes());
    }

    /**
     * 商品分类
     *
     * @param grabParam 参数
     */
    default ResultMessage<Object> goodsCate(GrabGoodsParam grabParam) {
        throw new ServiceException(StatusEnums.STATUS_400.getDes());
    }

    /**
     * 商品详情
     *
     * @param grabParam 参数
     */
    default ResultMessage<Object> detail(GrabGoodsParam grabParam) {
        throw new ServiceException(StatusEnums.STATUS_400.getDes());
    }

    /**
     * 商品配送方式
     *
     * @param grabParam 参数
     */
    default ResultMessage<Object> getYfMode(GrabGoodsParam grabParam) {
        throw new ServiceException(StatusEnums.STATUS_400.getDes());
    }

    /**
     * 商品品牌列表
     *
     * @param grabParam 参数
     */
    default ResultMessage<Object> getBrand(GrabGoodsParam grabParam) {
        throw new ServiceException(StatusEnums.STATUS_400.getDes());
    }

    /**
     * 商品库存查询
     *
     * @param grabParam 参数
     */
    default ResultMessage<Object> getGoodsStock(GrabGoodsParam grabParam) {
        throw new ServiceException(StatusEnums.STATUS_400.getDes());
    }
}
